}
}
let mut outputs = HashMap::new();
- for (name, output) in config.host.overrides.into_iter() {
- outputs.insert((sources[name].clone(), KindHost), output);
- }
- for (name, output) in config.target.overrides.into_iter() {
- outputs.insert((sources[name].clone(), KindTarget), output);
+ let i1 = config.host.overrides.into_iter().map(|p| (p, KindHost));
+ let i2 = config.target.overrides.into_iter().map(|p| (p, KindTarget));
+ for ((name, output), kind) in i1.chain(i2) {
+ match sources.get(&name) {
+ Some(id) => { outputs.insert((id.clone(), kind), output); }
+ None => {}
+ }
}
BuildState { outputs: Mutex::new(outputs) }
}
", compiling = COMPILING, running = RUNNING).as_slice()));
})
+test!(unused_overrides {
+ let (_, target) = ::cargo::ops::rustc_version().unwrap();
+
+ let p = project("foo")
+ .file("Cargo.toml", r#"
+ [project]
+ name = "foo"
+ version = "0.5.0"
+ authors = []
+ build = "build.rs"
+ "#)
+ .file("src/lib.rs", "")
+ .file("build.rs", "fn main() {}")
+ .file(".cargo/config", format!(r#"
+ [target.{}.foo]
+ rustc-flags = "-L foo -L bar"
+ foo = "bar"
+ bar = "baz"
+ "#, target).as_slice());
+
+ assert_that(p.cargo_process("build").arg("-v"),
+ execs().with_status(0));
+})
+
test!(links_passes_env_vars {
let p = project("foo")
.file("Cargo.toml", r#"